package com.gopay.remote.cps.holiday;

import java.util.Date;

import com.gopay.common.constants.holiday.HolidayType;
import com.gopay.common.exception.GopayException;

/**
 * 节假日管理远程接口
 * @HolidayRemoteService.java
 * @author wanggang
 * @2014-9-22 下午3:25:47  www.gopay.com.cn Inc.All rights reserved.
 */
public interface HolidayRemoteService {

    /**
     * 根据假日管理设置，计算t+n日期
     * @param t计算起始日
     * @param n计算日期数
     * @param holidayType假日类型
     * @return Date 结果日期
     */
    public Date getTaddN(Date t, int n, HolidayType holidayType) throws GopayException;
    
    /**
     * 根据假日管理设置，查询具体日期是否工作日(未查到信息，默认为工作日)
     * @param t计算日期
     * @param holidayType假日类型
     * @return true 是节假日（休息日）
     *         false 非节假日（工作日）
     */
    public boolean isHoliday(Date t, HolidayType holidayType) throws GopayException;     

    /**
     * 根据假日管理设置及结算时间，计算t+n日期（即超过多少点后结算日期延后一天）
     * @param t计算起始日
     * @param n计算日期数
     * @param holidayType假日类型
     * @param hour 结算小时 比如：15、20等
     * @return Date 结果日期
     * @throws GopayException
     */
    public Date getTaddNTime(Date t, int n, HolidayType holidayType, int hour) throws GopayException;

    /**
     * 天溢赢节假日查询 add by baiyunpeng 20161017
     * @param t
     * @param holidayType
     * @return
     * @throws GopayException
     */
    public boolean isWaTyyHoliday(Date t, HolidayType holidayType) throws GopayException;
}
